#include<stdio.h>
void swap(int arr[],int i,int j)
{
    int tmp=arr[i];
    arr[i]=arr[j];
    arr[j]=tmp;
}
void heapify(int tree,int n,int i)
{
    if(i>=n)
        return;
    int c1=2*i+1;
    int c2=2*i+2;
    int max=i;
    if(c1<n&&tree[c1]>tree[max])
        max=c1;
    if(c2<n&&tree[c2]>tree[max])
        max=c2;
    if(max!=i)
    {
        swap(tree,max,i);
        heapify(tree,n,max);
    }
} 
void build_heap(int tree[],int n)
{
    int i;
    for(i=(n-2)/2;i>=0;i--)
        heapify(tree,n,i);
}
void heap_sort(int tree[],int n)
{
    build_heap(tree,n)
    int i;
    for(i=n-1;i>=0;i++)
    {
        swap(tree,i,0);
        heapify(tree,i,0);
    }
}
int main()
{

}